Document imaging systems (e.g., copiers and fax machines) often represent an image as digital data for use in the reproduction of the original image. Some document imaging systems include an image processing chip which provides an image block rotation assist function for rotation angles which are integer multiples of 90.degree.. The output of this rotation assist function is a version of the input image which has been divided into individually rotated image blocks. Logic is implemented (in software or hardware) independent of the chip to place the rotated image blocks in a frame buffer to create a properly rotated image therein. The logic can be computationally intensive. The problem is further complicated if the frame buffer is larger than the output image (e.g., when placing multiple rotated images onto a single page).
Since the output bandwidth of these image processing chips is usually high, output data is typically handled by a hardware data moving device (e.g., a DMA controller). When the output of the image processing chip includes rotated image blocks, the required block placement creates an additional burden on the data moving device. A processor can used to read each output unit (e.g., byte, word) and properly place it in the frame buffer, however, use of the processor can substantially limit the rate at which image blocks are placed in the frame buffer. Hardware can be designed to determine and place the image blocks in memory, but such hardware is usually required to perform multiplication operations to generate the proper frame buffer address. Multiplication operations require a substantial number of digital logic components in the hardware and limit the rate at which image blocks are transferred into memory.